window functions process window messages
When a window function receives a window message, it can:

░    Ignore it and return.
░   Take action, then return.
░   Pass to standard window function, then return.
░   Pass to standard window function, then take action, then return.
░   Take action, then pass to standard window function, then return.

Standard window functions generally take action on window messages, then return. Custom window functions pass most messages to a standard window function then return. For messages that require non-standard actions, custom window functions generally perform their custom action either before or after passing the messages to a standard window function.

To process some window messages, window functions have to send messages to grid functions. For example, in response to WindowKeyDown and WindowKeyUp messages, window functions usually send KeyDown and KeyUp messages to the grid with keyboard focus.

window functions process grid messages
When a window function receives a grid message, it can:

░   Ignore it and return.
░   Take action, then return.
░   Pass to standard window function then return.
░   Pass to standard window function, take action, then return.
░   Take action, pass to standard window function, then return.
░   Pass to the grid function responsible for operating the grid, then return.

In almost every case, standard and custom window functions pass grid messages to the grid function responsible for operating the grid specified by the grid argument in the message, then return.